package com.bsoft.gol.hcs.specialist.service;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import com.bsoft.gol.hcs.his.bean.crucial.request.QueryCrucialRecordRequest;
import com.bsoft.gol.hcs.specialist.bean.request.CrucialIndexReq;
import com.bsoft.gol.hcs.specialist.bean.request.DeleteCrucialIndexRequest;
import com.bsoft.gol.hcs.specialist.bean.request.QueryCrucialIndexRequest;
import com.bsoft.gol.hcs.specialist.bean.request.QueryExamineResultIndexRequest;
import com.bsoft.gol.hcs.specialist.bean.response.*;

import java.util.List;
import java.util.Map;

/**
 * @Description: 关联指标服务层
 * @Author: zhaorb
 * @Date: 2020/7/20 14:35
 **/
public interface ICrucialIndexService {

    @RpcService
    CrucialIndexTotalResponse queryCrucialIndex(QueryCrucialIndexRequest request) throws ControllerException;

    /**
     * 按照类型查询关联指标信息
     * @param request
     * @return
     * @throws ControllerException
     */
    @RpcService
    CrucialIndexRecordsResponse queryCrucialIndexByType(QueryCrucialIndexRequest request) throws ControllerException;

    @RpcService
    Map<String,List<CrucialIndexClassifyRecordResponse>> queryCrucialIndexByClassifyId(QueryCrucialIndexRequest request) throws ControllerException;

    @RpcService
    Integer addCrucialIndex(CrucialIndexReq request) throws ControllerException;

    @RpcService
    void deleteCrucialIndex(DeleteCrucialIndexRequest request) throws ControllerException;
    @RpcService
    void addCrucialIndexRecord(String record) throws ControllerException;

    /**
     * 启用禁用关联指标
     * @param request
     * @throws ControllerException
     */
    @RpcService
    void disableCrucialIndex(DeleteCrucialIndexRequest request) throws ControllerException;
    @RpcService
   List<ExamineResultIndexResp> queryExamineResultIndex(QueryExamineResultIndexRequest request) throws ControllerException;

    @RpcService
    List<IndexTreeResp> queryIndexTree(QueryCrucialIndexRequest request) throws ControllerException;

    /**
     * 同步lis的指标数据
     * @throws ControllerException
     */
    @RpcService
    void syncCrucialIndexRecords(QueryCrucialRecordRequest request)throws ControllerException;
}
